static int parse_transaction_path(XsHandle *self, PyObject *args,
struct xs_handle **xh,
- xs_transaction_handle *th,
+ xs_transaction_t *th,
char **path);
static PyObject *xspy_read(XsHandle *self, PyObject *args)
{
struct xs_handle *xh;
- xs_transaction_handle th;
+ xs_transaction_t th;
char *path;
char *xsval;
{
static char *arg_spec = "sss#";
struct xs_handle *xh = xshandle(self);
- xs_transaction_handle th;
+ xs_transaction_t th;
char *thstr;
char *path;
char *data;
if (!PyArg_ParseTuple(args, arg_spec, &thstr, &path, &data, &data_n))
return NULL;
- th = (xs_transaction_handle)strtoul(thstr, NULL, 16);
+ th = (xs_transaction_t)strtoul(thstr, NULL, 16);
Py_BEGIN_ALLOW_THREADS
result = xs_write(xh, th, path, data, data_n);
static PyObject *xspy_ls(XsHandle *self, PyObject *args)
{
struct xs_handle *xh;
- xs_transaction_handle th;
+ xs_transaction_t th;
char *path;
char **xsval;
static PyObject *xspy_mkdir(XsHandle *self, PyObject *args)
{
struct xs_handle *xh;
- xs_transaction_handle th;
+ xs_transaction_t th;
char *path;
bool result;
static PyObject *xspy_rm(XsHandle *self, PyObject *args)
{
struct xs_handle *xh;
- xs_transaction_handle th;
+ xs_transaction_t th;
char *path;
bool result;
unsigned int perms_n = 0;
int i;
- xs_transaction_handle th;
+ xs_transaction_t th;
char *thstr;
if (!xh)
if (!PyArg_ParseTuple(args, arg_spec, &thstr, &path))
return NULL;
- th = (xs_transaction_handle)strtoul(thstr, NULL, 16);
+ th = (xs_transaction_t)strtoul(thstr, NULL, 16);
Py_BEGIN_ALLOW_THREADS
perms = xs_get_permissions(xh, th, path, &perms_n);
int xsperms_n;
PyObject *tuple0 = NULL;
- xs_transaction_handle th;
+ xs_transaction_t th;
char *thstr;
if (!xh)
if (!PyArg_ParseTuple(args, "ssO", &thstr, &path, &perms))
goto exit;
- th = (xs_transaction_handle)strtoul(thstr, NULL, 16);
+ th = (xs_transaction_t)strtoul(thstr, NULL, 16);
if (!PyList_Check(perms)) {
PyErr_SetString(PyExc_RuntimeError, "perms must be a list");
static PyObject *xspy_transaction_start(XsHandle *self)
{
struct xs_handle *xh = xshandle(self);
- xs_transaction_handle th;
+ xs_transaction_t th;
char thstr[MAX_STRLEN(unsigned long) + 1];
if (!xh)
struct xs_handle *xh = xshandle(self);
bool result;
- xs_transaction_handle th;
+ xs_transaction_t th;
char *thstr;
if (!xh)
&thstr, &abort))
return NULL;
- th = (xs_transaction_handle)strtoul(thstr, NULL, 16);
+ th = (xs_transaction_t)strtoul(thstr, NULL, 16);
Py_BEGIN_ALLOW_THREADS
result = xs_transaction_end(xh, th, abort);
*/
static int parse_transaction_path(XsHandle *self, PyObject *args,
struct xs_handle **xh,
- xs_transaction_handle *th,
+ xs_transaction_t *th,
char **path)
{
char *thstr;
if (!PyArg_ParseTuple(args, "ss", &thstr, path))
return 0;
- *th = (xs_transaction_handle)strtoul(thstr, NULL, 16);
+ *th = (xs_transaction_t)strtoul(thstr, NULL, 16);
return 1;
}
#if defined(CLIENT_rm)
static int
-do_rm(char *path, struct xs_handle *xsh, xs_transaction_handle xth)
+do_rm(char *path, struct xs_handle *xsh, xs_transaction_t xth)
{
if (xs_rm(xsh, xth, path)) {
return 0;
static int
perform(int optind, int argc, char **argv, struct xs_handle *xsh,
- xs_transaction_handle xth, int prefix, int tidy)
+ xs_transaction_t xth, int prefix, int tidy)
{
while (optind < argc) {
#if defined(CLIENT_read)
main(int argc, char **argv)
{
struct xs_handle *xsh;
- xs_transaction_handle xth;
+ xs_transaction_t xth;
int ret = 0, socket = 0;
int prefix = 0;
int tidy = 0;
}
/* Send message to xs, get malloc'ed reply. NULL and set errno on error. */
-static void *xs_talkv(struct xs_handle *h, xs_transaction_handle t,
+static void *xs_talkv(struct xs_handle *h, xs_transaction_t t,
enum xsd_sockmsg_type type,
const struct iovec *iovec,
unsigned int num_vecs,
}
/* Simplified version of xs_talkv: single message. */
-static void *xs_single(struct xs_handle *h, xs_transaction_handle t,
+static void *xs_single(struct xs_handle *h, xs_transaction_t t,
enum xsd_sockmsg_type type,
const char *string,
unsigned int *len)
return true;
}
-char **xs_directory(struct xs_handle *h, xs_transaction_handle t,
+char **xs_directory(struct xs_handle *h, xs_transaction_t t,
const char *path, unsigned int *num)
{
char *strings, *p, **ret;
* Returns a malloced value: call free() on it after use.
* len indicates length in bytes, not including the nul.
*/
-void *xs_read(struct xs_handle *h, xs_transaction_handle t,
+void *xs_read(struct xs_handle *h, xs_transaction_t t,
const char *path, unsigned int *len)
{
return xs_single(h, t, XS_READ, path, len);
/* Write the value of a single file.
* Returns false on failure.
*/
-bool xs_write(struct xs_handle *h, xs_transaction_handle t,
+bool xs_write(struct xs_handle *h, xs_transaction_t t,
const char *path, const void *data, unsigned int len)
{
struct iovec iovec[2];
/* Create a new directory.
* Returns false on failure, or success if it already exists.
*/
-bool xs_mkdir(struct xs_handle *h, xs_transaction_handle t,
+bool xs_mkdir(struct xs_handle *h, xs_transaction_t t,
const char *path)
{
return xs_bool(xs_single(h, t, XS_MKDIR, path, NULL));
/* Destroy a file or directory (directories must be empty).
* Returns false on failure, or success if it doesn't exist.
*/
-bool xs_rm(struct xs_handle *h, xs_transaction_handle t,
+bool xs_rm(struct xs_handle *h, xs_transaction_t t,
const char *path)
{
return xs_bool(xs_single(h, t, XS_RM, path, NULL));
* Returns malloced array, or NULL: call free() after use.
*/
struct xs_permissions *xs_get_permissions(struct xs_handle *h,
- xs_transaction_handle t,
+ xs_transaction_t t,
const char *path, unsigned int *num)
{
char *strings;
* Returns false on failure.
*/
bool xs_set_permissions(struct xs_handle *h,
- xs_transaction_handle t,
+ xs_transaction_t t,
const char *path,
struct xs_permissions *perms,
unsigned int num_perms)
* You can only have one transaction at any time.
* Returns NULL on failure.
*/
-xs_transaction_handle xs_transaction_start(struct xs_handle *h)
+xs_transaction_t xs_transaction_start(struct xs_handle *h)
{
char *id_str;
unsigned long id;
id = strtoul(id_str, NULL, 0);
free(id_str);
- return (xs_transaction_handle)id;
+ return (xs_transaction_t)id;
}
/* End a transaction.
* Returns false on failure, which indicates an error: transactions will
* not fail spuriously.
*/
-bool xs_transaction_end(struct xs_handle *h, xs_transaction_handle t,
+bool xs_transaction_end(struct xs_handle *h, xs_transaction_t t,
bool abort)
{
char abortstr[2];
#define XBT_NULL NULL
struct xs_handle;
-struct xs_transaction_handle;
-typedef struct xs_transaction_handle * xs_transaction_handle;
+struct xs_transaction_t;
+typedef struct xs_transaction_t * xs_transaction_t;
/* On failure, these routines set errno. */
* Returns a malloced array: call free() on it after use.
* Num indicates size.
*/
-char **xs_directory(struct xs_handle *h, xs_transaction_handle t,
+char **xs_directory(struct xs_handle *h, xs_transaction_t t,
const char *path, unsigned int *num);
/* Get the value of a single file, nul terminated.
* Returns a malloced value: call free() on it after use.
* len indicates length in bytes, not including terminator.
*/
-void *xs_read(struct xs_handle *h, xs_transaction_handle t,
+void *xs_read(struct xs_handle *h, xs_transaction_t t,
const char *path, unsigned int *len);
/* Write the value of a single file.
* Returns false on failure.
*/
-bool xs_write(struct xs_handle *h, xs_transaction_handle t,
+bool xs_write(struct xs_handle *h, xs_transaction_t t,
const char *path, const void *data, unsigned int len);
/* Create a new directory.
* Returns false on failure, or success if it already exists.
*/
-bool xs_mkdir(struct xs_handle *h, xs_transaction_handle t,
+bool xs_mkdir(struct xs_handle *h, xs_transaction_t t,
const char *path);
/* Destroy a file or directory (and children).
* Returns false on failure, or if it doesn't exist.
*/
-bool xs_rm(struct xs_handle *h, xs_transaction_handle t,
+bool xs_rm(struct xs_handle *h, xs_transaction_t t,
const char *path);
/* Get permissions of node (first element is owner, first perms is "other").
* Returns malloced array, or NULL: call free() after use.
*/
struct xs_permissions *xs_get_permissions(struct xs_handle *h,
- xs_transaction_handle t,
+ xs_transaction_t t,
const char *path, unsigned int *num);
/* Set permissions of node (must be owner).
* Returns false on failure.
*/
-bool xs_set_permissions(struct xs_handle *h, xs_transaction_handle t,
+bool xs_set_permissions(struct xs_handle *h, xs_transaction_t t,
const char *path, struct xs_permissions *perms,
unsigned int num_perms);
* You can only have one transaction at any time.
* Returns NULL on failure.
*/
-xs_transaction_handle xs_transaction_start(struct xs_handle *h);
+xs_transaction_t xs_transaction_start(struct xs_handle *h);
/* End a transaction.
* If abandon is true, transaction is discarded instead of committed.
* Returns false on failure: if errno == EAGAIN, you have to restart
* transaction.
*/
-bool xs_transaction_end(struct xs_handle *h, xs_transaction_handle t,
+bool xs_transaction_end(struct xs_handle *h, xs_transaction_t t,
bool abort);
/* Introduce a new domain.
#define XSTEST
static struct xs_handle *handles[10] = { NULL };
-static xs_transaction_handle txh[10] = { XBT_NULL };
+static xs_transaction_t txh[10] = { XBT_NULL };
static unsigned int timeout_ms = 500;
static bool timeout_suppressed = true;